// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const openid = wxContext.OPENID
  
  // 从请求中获取用户信息
  const { nickName, avatarUrl, operation = 'updateProfile' } = event
  
  try {
    // 查询当前用户
    const userResult = await db.collection('users').where({
      _openid: openid
    }).get()
    
    if (userResult.data.length === 0) {
      return {
        success: false,
        message: '用户不存在',
        code: 404
      }
    }
    
    const userId = userResult.data[0]._id
    
    // 根据操作类型执行不同的更新
    switch (operation) {
      case 'updateAvatar':
        // 仅更新头像
        await db.collection('users').doc(userId).update({
          data: {
            avatarUrl: avatarUrl,
            updateTime: db.serverDate()
          }
        })
        break
        
      case 'updateNickname':
        // 仅更新昵称
        await db.collection('users').doc(userId).update({
          data: {
            nickName: nickName,
            updateTime: db.serverDate()
          }
        })
        break
        
      case 'updateProfile':
      default:
        // 更新头像和昵称
        await db.collection('users').doc(userId).update({
          data: {
            nickName: nickName,
            avatarUrl: avatarUrl,
            updateTime: db.serverDate()
          }
        })
        break
    }
    
    // 获取更新后的用户信息
    const updatedUser = await db.collection('users').doc(userId).get()
    
    return {
      success: true,
      message: '用户信息更新成功',
      data: updatedUser.data
    }
  } catch (err) {
    console.error('更新用户信息失败:', err)
    return {
      success: false,
      message: '更新用户信息失败',
      error: err
    }
  }
} 